package estadistec.grafico;

import estadistec.excepciones.Excepcion;


import estadistec.logica.SuperGestor;
import estadistec.logica.tabla.TipoTabla;

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;


/**
 * @author julatec
 * @author pcorrales
 */

/**
 * Clase  que se extiende de JPanel , con el fin de crear la barra 
 * de herramientas para trabajar de forma mas facil las opciones del 
 * menu de la aplicacion
 */
public class BarraHerramientas 
	extends JPanel 
	implements ConstantesGraficas,  ActionListener{


    /**
     * Referencia al SuperGestor.
     */
	 private SuperGestor _superGestor;
	  
	 /*
	  * declaracion componentes graficos
	  */
	 
	  /**
	   * Arreglo de botones que representasn las herramientas con las 
	   * cules se podra trabajar desde  la barra de forma rapida.
	   */
      private JButton OpcionesHerramientas[];
      
      /***
       * Arreglo con el nombre de las herramientas a implementar
       */
      private String  NombresHerramientas[];
      
      /**
       * ubicacion de los botones de la barra de herramientas
       */
      private Point ubicacion_boton;
      
	public BarraHerramientas() {

		super();    

		_superGestor = SuperGestor.getInstancia();
		
		/*
		 * cargar las dimenciones,ubicacion y colores de la barra
		 */
		
		this.setPreferredSize(CONFIG.cargarDimension("BARRA_HERRAMIENTA"));
		this.setSize(CONFIG.cargarDimension("BARRA_HERRAMIENTA"));
		this.setLocation(CONFIG.cargarPunto("BARRA_HERRAMIENTA"));
		this.setBackground(ESTILO.getSecondary2());
		//this.setMaximumSize(CONFIG.cargarDimension("BARRA_HERRAMIENTA1"));
		//this.setMinimumSize(CONFIG.cargarDimension("BARRA_HERRAMIENTA"));

		
		/*
		 * inicializar los componentes graficos y las variables
		 */
		OpcionesHerramientas= new JButton[NUMERO_HERRAMIENTAS];
	    NombresHerramientas= new String[NUMERO_HERRAMIENTAS];
	    ubicacion_boton = CONFIG.cargarPunto("HERRAMIENTA");
	   
	    this.setBorder(BorderFactory.createTitledBorder(" "));
	    
	    /*
	     * inicializar las herramientas
	     */
	    InicializarBarraHerramientas();	
	
	}

	/**
	 * Version.
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * Metodo para inicializar la barra de herramientas
	 * recorre el arreglo de las imagenes y monta cada una de las 
	 * imagenes.
	 */
	private void InicializarBarraHerramientas()
	{
   		/*
 		 * crea la cantidad de botones correspondientes segun la 
		 * cantidad de opciones para la barra de herramientas
		 * ademas carga las dimensiones y la imagen de cada boton
		 */ 

		for(int x = 0; x < NUMERO_HERRAMIENTAS;x++)
		{
			OpcionesHerramientas[x] = new  JButton(
					new ImageIcon(IMAGENESMENU[x]));
			OpcionesHerramientas[x].setLocation(ubicacion_boton);
			OpcionesHerramientas[x].setSize(
					CONFIG.cargarDimension("BOTON_HERRAMIENTA"));
			OpcionesHerramientas[x].setVisible(true);
			OpcionesHerramientas[x].addActionListener(this);
			this.add(OpcionesHerramientas[x]);

			ubicacion_boton.x += ESPACIO_HERRAMIENTAS;
		}
	}
	
	/**
	 * Metodo para hacer visible la barra de herramientas
	 */
	public void iniciar()
	{  
		this.setVisible(true);
	}
	
	/**
	 * Metodo para hacer invisible la barra de herramientas
	 */
	public void terminar()
	{  
		this.setVisible(false);
	}

	 
	/*
	 * Manejador de eventos de la barra de herramientas
	 * invoca a la creacion de las tablas y las gráficas
	 */
	public void actionPerformed(ActionEvent e)
	{
		Object emisor = e.getSource();
		
		/*
		 * crear una tabla normal
		 */
		if(emisor == OpcionesHerramientas[0])
		{
			 /*
			  * inicializar una tabla normal
			  */
			
			System.out.println("Boton de tabla normal");
			crearTablaNormal();
			
		}
		
		/*
		 * crear una tabla muestra modo normal
		 */
		else if(emisor == OpcionesHerramientas[1])
		{
			
		}
		/*
		 * crear una tabla muestra modo evaluacion
		 */
		else if(emisor == OpcionesHerramientas[2])
		{
			//System.out.println("boton 5");
		}
		/*
		 * crear una tabla resumen modo normal
		 */
		else if(emisor == OpcionesHerramientas[3])
		{
			
		}
		/*
		 * crear una tabla resumen modo evaluacion
		 */
		else if(emisor == OpcionesHerramientas[4])
		{
			
		}
		/*
		 * crear una grafica modo 
		 */
		else if(emisor == OpcionesHerramientas[4])
		{
			
		}
		/*
		 * crear una grafica modo 
		 */
		else if(emisor == OpcionesHerramientas[4])
		{
			
		}
		/*
		 * crear una grafica modo 
		 */
		else if(emisor == OpcionesHerramientas[4])
		{
			
		}
	}
	
	/**
	 * Metodo para crear una tabla Normal
	 * @throws  Exception
	 * 				Error al no poder crear la tabla
	 */
	public void crearTablaNormal()
	{	
		_superGestor.crearTabla(TipoTabla.NORMAL);
	}
}
